package cn.android666.net.util.download.apkdownload

import cn.android666.net.util.download.DownloadCallback
import java.io.File

interface ApkDownloadContract {

    interface Presenter {
        /**
         * 开始新的下载
         * @param appName 应用名字，用于下载对话框显示
         * @param appDownloadUrl 应用下载地址
         * @param appPackageName 应用包名，用于保存文件名，可传null
         * @param appVersionCode 应用版本号，用于保存文件名，可传null
         * @param apkSaveDir apk保存的目录
         */
        fun startNewDownload(appName: String, appDownloadUrl: String, appPackageName: String?, appVersionCode: String?, apkSaveDir: File)

        /** 重新下载，与startNewDownload不同，当文件已经下载完成后，再调用startNewDownload会弹出文件已经下载，是否重新下载，如果需要重新下载时，则调用reDownload */
        fun reDownload()

        /** 暂停下载 */
        fun pauseDownload()

        /** 恢复暂停的下载 */
        fun resumeDownload()

        /** 是否正在下载 */
        fun isDownloading(): Boolean
    }

    interface View: DownloadCallback
}